{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Python: Run Checks",
            "type": "shell",
            "command": "poetry",
            "args": [
                "run",
                "pre-commit",
                "run",
                "-a"
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Python: Run Checks - Staged",
            "type": "shell",
            "command": "poetry",
            "args": [
                "run",
                "pre-commit",
                "run",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Python: Run Mypy",
            "type": "shell",
            "command": "poetry",
            "args": [
                "run",
                "pre-commit",
                "run",
                "-a",
                "mypy"
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Python: Install",
            "type": "shell",
            "command": "poetry",
            "args": [
                "install",
                "--extras",
                "all"
            ],
            "presentation": {
                "reveal": "silent",
                "panel": "shared"
            },
            "problemMatcher": []
        },
        {
            "label": "Python: Tests - Unit",
            "type": "shell",
            "command": "poetry",
            "args": [
                "run",
                "pytest",
                "tests/unit/"
            ],
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            },
            "problemMatcher": []
        },
        {
            "label": "Python: Tests - Code Coverage",
            "type": "shell",
            "command": "poetry run pytest --cov=semantic_kernel --cov-report=term-missing:skip-covered tests/unit/",
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            },
            "problemMatcher": []
        },
        {
            "label": "Python: Tests - All",
            "type": "shell",
            "command": "poetry",
            "args": [
                "run",
                "pytest",
                "tests/"
            ],
            "group": "test",
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            },
            "problemMatcher": []
        }
    ]
}